home *** CD-ROM | disk | FTP | other *** search
/ Micromanía: 150 Juegos 2010 / 150Juegos_16.iso / Shareware / Shape Smash / shape-smash.swf / scripts / mochi / as3 / MochiAd.as next >
Encoding:
Text File  |  2010-05-14  |  33.3 KB  |  1,031 lines

  1. package mochi.as3
  2. {
  3.    import flash.display.DisplayObjectContainer;
  4.    import flash.display.Loader;
  5.    import flash.display.MovieClip;
  6.    import flash.events.Event;
  7.    import flash.events.IOErrorEvent;
  8.    import flash.net.LocalConnection;
  9.    import flash.net.URLRequest;
  10.    import flash.net.URLRequestMethod;
  11.    import flash.net.URLVariables;
  12.    import flash.system.Security;
  13.    import flash.utils.getTimer;
  14.    import flash.utils.setTimeout;
  15.    
  16.    public class MochiAd
  17.    {
  18.       public function MochiAd()
  19.       {
  20.          super();
  21.       }
  22.       
  23.       public static function _rv26(param1:Object, param2:String, param3:Array) : Object
  24.       {
  25.          var _loc4_:Array = null;
  26.          var _loc5_:Number = NaN;
  27.          _loc4_ = param2.split(".");
  28.          _loc5_ = 0;
  29.          while(_loc5_ < _loc4_.length - 1)
  30.          {
  31.             if(param1[_loc4_[_loc5_]] == undefined || param1[_loc4_[_loc5_]] == null)
  32.             {
  33.                return undefined;
  34.             }
  35.             param1 = param1[_loc4_[_loc5_]];
  36.             _loc5_++;
  37.          }
  38.          if(typeof param1[_loc4_[_loc5_]] == "function")
  39.          {
  40.             return param1[_loc4_[_loc5_]].apply(param1,param3);
  41.          }
  42.          return undefined;
  43.       }
  44.       
  45.       public static function _of767(param1:Object, param2:Object) : Array
  46.       {
  47.          var _loc3_:Object = null;
  48.          var _loc4_:Number = NaN;
  49.          var _loc5_:Number = NaN;
  50.          var _loc6_:Array = null;
  51.          _loc3_ = param2.getBounds(param2.root);
  52.          _loc4_ = 0;
  53.          _loc5_ = 0;
  54.          if(typeof param1.res != "undefined")
  55.          {
  56.             _loc6_ = param1.res.split("x");
  57.             _loc4_ = parseFloat(_loc6_[0]);
  58.             _loc5_ = parseFloat(_loc6_[1]);
  59.          }
  60.          else
  61.          {
  62.             _loc4_ = _loc3_.xMax - _loc3_.xMin;
  63.             _loc5_ = _loc3_.yMax - _loc3_.yMin;
  64.          }
  65.          if(_loc4_ == 0 || _loc5_ == 0)
  66.          {
  67.             _loc4_ = Number(param2.stage.stageWidth);
  68.             _loc5_ = Number(param2.stage.stageHeight);
  69.          }
  70.          return [_loc4_,_loc5_];
  71.       }
  72.       
  73.       public static function load(param1:Object) : MovieClip
  74.       {
  75.          var DEFAULTS:Object = null;
  76.          var _cn696:Object = null;
  77.          var depth:Number = NaN;
  78.          var mc:MovieClip = null;
  79.          var wh:Array = null;
  80.          var lv:URLVariables = null;
  81.          var k:String = null;
  82.          var server:String = null;
  83.          var hostname:String = null;
  84.          var lc:LocalConnection = null;
  85.          var name:String = null;
  86.          var loader:Loader = null;
  87.          var _kj772:Function = null;
  88.          var req:URLRequest = null;
  89.          var v:Object = null;
  90.          var options:Object = param1;
  91.          DEFAULTS = {
  92.             "server":"http://x.mochiads.com/srv/1/",
  93.             "method":"load",
  94.             "depth":10333,
  95.             "id":"_UNKNOWN_"
  96.          };
  97.          options = MochiAd._pp77(options,DEFAULTS);
  98.          options.swfv = 9;
  99.          options.mav = MochiAd._rm99();
  100.          _cn696 = options._cn696;
  101.          if(!MochiAd._rw590())
  102.          {
  103.             return null;
  104.          }
  105.          try
  106.          {
  107.             if(_cn696._mochiad_loaded)
  108.             {
  109.                return null;
  110.             }
  111.          }
  112.          catch(e:Error)
  113.          {
  114.             throw new Error("MochiAd requires a clip that is an instance of a dynamic class.  If your class extends Sprite or MovieClip, you must make it dynamic.");
  115.          }
  116.          depth = Number(options.depth);
  117.          delete options.depth;
  118.          mc = _xk164(_cn696,"_mochiad",depth);
  119.          wh = MochiAd._of767(options,_cn696);
  120.          options.res = wh[0] + "x" + wh[1];
  121.          options.server += options.id;
  122.          delete options.id;
  123.          _cn696._mochiad_loaded = true;
  124.          if(_cn696.loaderInfo.loaderURL.indexOf("http") == 0)
  125.          {
  126.             options.as3_swf = _cn696.loaderInfo.loaderURL;
  127.          }
  128.          else
  129.          {
  130.             trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
  131.          }
  132.          lv = new URLVariables();
  133.          for(k in options)
  134.          {
  135.             v = options[k];
  136.             if(!(v is Function))
  137.             {
  138.                lv[k] = v;
  139.             }
  140.          }
  141.          server = lv.server;
  142.          delete lv.server;
  143.          hostname = _ek288(server);
  144.          lc = new LocalConnection();
  145.          lc.client = mc;
  146.          name = ["",Math.floor(new Date().getTime()),Math.floor(Math.random() * 999999)].join("_");
  147.          lc.allowDomain("*","localhost");
  148.          lc.allowInsecureDomain("*","localhost");
  149.          lc.connect(name);
  150.          mc.lc = lc;
  151.          mc.lcName = name;
  152.          lv.lc = name;
  153.          lv.st = getTimer();
  154.          loader = new Loader();
  155.          _kj772 = function(param1:Object):void
  156.          {
  157.             param1.target.removeEventListener(param1.type,arguments.callee);
  158.             MochiAd.unload(_cn696);
  159.          };
  160.          loader.contentLoaderInfo.addEventListener(Event.UNLOAD,_kj772);
  161.          req = new URLRequest(server + ".swf?cacheBust=" + new Date().getTime());
  162.          req.contentType = "application/x-www-form-urlencoded";
  163.          req.method = URLRequestMethod.POST;
  164.          req.data = lv;
  165.          loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(param1:IOErrorEvent):void
  166.          {
  167.             trace("[MochiAds] Blocked URL");
  168.          });
  169.          loader.load(req);
  170.          mc.addChild(loader);
  171.          mc._mochiad_ctr = loader;
  172.          return mc;
  173.       }
  174.       
  175.       public static function _ta740(param1:Object) : void
  176.       {
  177.          var DEFAULTS:Object = null;
  178.          var _cn696:Object = null;
  179.          var ad_msec:Number = NaN;
  180.          var ad_timeout:Number = NaN;
  181.          var fadeout_time:Number = NaN;
  182.          var mc:MovieClip = null;
  183.          var wh:Array = null;
  184.          var w:Number = NaN;
  185.          var h:Number = NaN;
  186.          var chk:MovieClip = null;
  187.          var options:Object = param1;
  188.          DEFAULTS = {
  189.             "ad_timeout":2000,
  190.             "fadeout_time":250,
  191.             "regpt":"o",
  192.             "method":"showTimedAd",
  193.             "ad_started":function():void
  194.             {
  195.                if(this._cn696 is MovieClip)
  196.                {
  197.                   this._cn696.stop();
  198.                   return;
  199.                }
  200.                throw new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip.  If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.");
  201.             },
  202.             "ad_finished":function():void
  203.             {
  204.                if(this._cn696 is MovieClip)
  205.                {
  206.                   this._cn696.play();
  207.                   return;
  208.                }
  209.                throw new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip.  If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.");
  210.             },
  211.             "ad_loaded":function(param1:Number, param2:Number):void
  212.             {
  213.             },
  214.             "ad_failed":function():void
  215.             {
  216.                trace("[MochiAd] Couldn\'t load an ad, make sure your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
  217.             },
  218.             "ad_skipped":function():void
  219.             {
  220.             }
  221.          };
  222.          options = MochiAd._pp77(options,DEFAULTS);
  223.          _cn696 = options._cn696;
  224.          ad_msec = 11000;
  225.          ad_timeout = Number(options.ad_timeout);
  226.          delete options.ad_timeout;
  227.          fadeout_time = Number(options.fadeout_time);
  228.          delete options.fadeout_time;
  229.          if(!MochiAd.load(options))
  230.          {
  231.             options.ad_failed();
  232.             options.ad_finished();
  233.             return;
  234.          }
  235.          options.ad_started();
  236.          mc = _cn696._mochiad;
  237.          mc["onUnload"] = function():void
  238.          {
  239.             MochiAd._xb329(mc);
  240.             options.ad_finished();
  241.          };
  242.          wh = MochiAd._of767(options,_cn696);
  243.          w = Number(wh[0]);
  244.          h = Number(wh[1]);
  245.          mc.x = w * 0.5;
  246.          mc.y = h * 0.5;
  247.          chk = _xk164(mc,"_mochiad_wait",3);
  248.          chk.ad_msec = ad_msec;
  249.          chk.ad_timeout = ad_timeout;
  250.          chk.started = getTimer();
  251.          chk.showing = false;
  252.          chk.fadeout_time = fadeout_time;
  253.          chk.fadeFunction = function():void
  254.          {
  255.             var _loc1_:Number = NaN;
  256.             if(!this.parent)
  257.             {
  258.                delete this.onEnterFrame;
  259.                delete this.fadeFunction;
  260.                return;
  261.             }
  262.             _loc1_ = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time);
  263.             if(_loc1_ > 0)
  264.             {
  265.                this.parent.alpha = _loc1_ * 0.01;
  266.             }
  267.             else
  268.             {
  269.                MochiAd.unload(_cn696);
  270.                delete this["onEnterFrame"];
  271.             }
  272.          };
  273.          mc.unloadAd = function():void
  274.          {
  275.             MochiAd.unload(_cn696);
  276.          };
  277.          mc.adLoaded = options.ad_loaded;
  278.          mc.adSkipped = options.ad_skipped;
  279.          mc.adjustProgress = function(param1:Number):void
  280.          {
  281.             var _loc2_:Object = null;
  282.             _loc2_ = mc._mochiad_wait;
  283.             _loc2_.server_control = true;
  284.             _loc2_.showing = true;
  285.             _loc2_.started = getTimer();
  286.             _loc2_.ad_msec = param1 - 250;
  287.          };
  288.          mc._oc588 = function(param1:Number, param2:Object):void
  289.          {
  290.             MochiAd._oc588(_cn696,param1,param2);
  291.          };
  292.          chk["onEnterFrame"] = function():void
  293.          {
  294.             var _loc1_:Object = null;
  295.             var _loc2_:Number = NaN;
  296.             var _loc3_:Boolean = false;
  297.             var _loc4_:Number = NaN;
  298.             if(!this.parent)
  299.             {
  300.                delete this.onEnterFrame;
  301.                delete this.fadeFunction;
  302.                return;
  303.             }
  304.             _loc1_ = this.parent._mochiad_ctr;
  305.             _loc2_ = getTimer() - this.started;
  306.             _loc3_ = false;
  307.             if(!chk.showing)
  308.             {
  309.                _loc4_ = Number(this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal);
  310.                if(_loc4_ > 0)
  311.                {
  312.                   chk.showing = true;
  313.                   chk.started = getTimer();
  314.                   MochiAd._gj572(_cn696);
  315.                }
  316.                else if(_loc2_ > chk.ad_timeout)
  317.                {
  318.                   options.ad_failed();
  319.                   _loc3_ = true;
  320.                }
  321.             }
  322.             if(_loc2_ > chk.ad_msec)
  323.             {
  324.                _loc3_ = true;
  325.             }
  326.             if(_loc3_)
  327.             {
  328.                if(this.server_control)
  329.                {
  330.                   delete this.onEnterFrame;
  331.                }
  332.                else
  333.                {
  334.                   this.fadeout_start = getTimer();
  335.                   this.onEnterFrame = this.fadeFunction;
  336.                }
  337.             }
  338.          };
  339.          _tf648(chk);
  340.       }
  341.       
  342.       public static function _rw590() : Boolean
  343.       {
  344.          return Security.sandboxType != "localWithFile";
  345.       }
  346.       
  347.       public static function _tf648(param1:MovieClip) : void
  348.       {
  349.          var f:Function = null;
  350.          var mc:MovieClip = param1;
  351.          f = function(param1:Object):void
  352.          {
  353.             if("onEnterFrame" in mc && Boolean(mc.onEnterFrame))
  354.             {
  355.                mc.onEnterFrame();
  356.             }
  357.             else
  358.             {
  359.                param1.target.removeEventListener(param1.type,arguments.callee);
  360.             }
  361.          };
  362.          mc.addEventListener(Event.ENTER_FRAME,f);
  363.       }
  364.       
  365.       public static function getValue(param1:Object, param2:String) : Object
  366.       {
  367.          var _loc3_:Array = null;
  368.          var _loc4_:Number = NaN;
  369.          _loc3_ = param2.split(".");
  370.          _loc4_ = 0;
  371.          while(_loc4_ < _loc3_.length - 1)
  372.          {
  373.             if(param1[_loc3_[_loc4_]] == undefined || param1[_loc3_[_loc4_]] == null)
  374.             {
  375.                return undefined;
  376.             }
  377.             param1 = param1[_loc3_[_loc4_]];
  378.             _loc4_++;
  379.          }
  380.          return param1[_loc3_[_loc4_]];
  381.       }
  382.       
  383.       public static function _ek288(param1:String) : String
  384.       {
  385.          var _loc2_:String = null;
  386.          _loc2_ = param1.split("/")[2].split(":")[0];
  387.          if(Security.sandboxType == "application")
  388.          {
  389.             return _loc2_;
  390.          }
  391.          Security.allowDomain("*");
  392.          Security.allowDomain(_loc2_);
  393.          Security.allowInsecureDomain("*");
  394.          Security.allowInsecureDomain(_loc2_);
  395.          return _loc2_;
  396.       }
  397.       
  398.       public static function _gs746(param1:Object) : void
  399.       {
  400.          var DEFAULTS:Object = null;
  401.          var _cn696:Object = null;
  402.          var ad_msec:Number = NaN;
  403.          var ad_timeout:Number = NaN;
  404.          var fadeout_time:Number = NaN;
  405.          var mc:MovieClip = null;
  406.          var wh:Array = null;
  407.          var w:Number = NaN;
  408.          var h:Number = NaN;
  409.          var chk:MovieClip = null;
  410.          var bar:MovieClip = null;
  411.          var bar_w:Number = NaN;
  412.          var bar_color:Number = NaN;
  413.          var bar_background:Number = NaN;
  414.          var bar_outline:Number = NaN;
  415.          var backing_mc:MovieClip = null;
  416.          var backing:Object = null;
  417.          var inside_mc:MovieClip = null;
  418.          var inside:Object = null;
  419.          var outline_mc:MovieClip = null;
  420.          var outline:Object = null;
  421.          var complete:Boolean = false;
  422.          var unloaded:Boolean = false;
  423.          var f:Function = null;
  424.          var sendHostProgress:Boolean = false;
  425.          var fn:Function = null;
  426.          var _qf816:MovieClip = null;
  427.          var options:Object = param1;
  428.          DEFAULTS = {
  429.             "ad_timeout":3000,
  430.             "fadeout_time":250,
  431.             "regpt":"o",
  432.             "method":"showPreloaderAd",
  433.             "color":16747008,
  434.             "background":16777161,
  435.             "outline":13994812,
  436.             "no_progress_bar":false,
  437.             "ad_started":function():void
  438.             {
  439.                if(this._cn696 is MovieClip)
  440.                {
  441.                   this._cn696.stop();
  442.                   return;
  443.                }
  444.                throw new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip.  If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.");
  445.             },
  446.             "ad_finished":function():void
  447.             {
  448.                if(this._cn696 is MovieClip)
  449.                {
  450.                   this._cn696.play();
  451.                   return;
  452.                }
  453.                throw new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip.  If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.");
  454.             },
  455.             "ad_loaded":function(param1:Number, param2:Number):void
  456.             {
  457.             },
  458.             "ad_failed":function():void
  459.             {
  460.                trace("[MochiAd] Couldn\'t load an ad, make sure your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
  461.             },
  462.             "ad_skipped":function():void
  463.             {
  464.             },
  465.             "ad_progress":function(param1:Number):void
  466.             {
  467.             },
  468.             "bar_offset":0
  469.          };
  470.          options = MochiAd._pp77(options,DEFAULTS);
  471.          if("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def")
  472.          {
  473.             options.ad_started();
  474.             fn = function():void
  475.             {
  476.                options.ad_finished();
  477.             };
  478.             setTimeout(fn,100);
  479.             return;
  480.          }
  481.          _cn696 = options._cn696;
  482.          ad_msec = 11000;
  483.          ad_timeout = Number(options.ad_timeout);
  484.          delete options.ad_timeout;
  485.          fadeout_time = Number(options.fadeout_time);
  486.          delete options.fadeout_time;
  487.          if(!MochiAd.load(options))
  488.          {
  489.             options.ad_failed();
  490.             options.ad_finished();
  491.             return;
  492.          }
  493.          options.ad_started();
  494.          mc = _cn696._mochiad;
  495.          mc["onUnload"] = function():void
  496.          {
  497.             var fn:Function = null;
  498.             MochiAd._xb329(mc);
  499.             fn = function():void
  500.             {
  501.                options.ad_finished();
  502.             };
  503.             setTimeout(fn,100);
  504.          };
  505.          wh = MochiAd._of767(options,_cn696);
  506.          w = Number(wh[0]);
  507.          h = Number(wh[1]);
  508.          mc.x = w * 0.5;
  509.          mc.y = h * 0.5;
  510.          chk = _xk164(mc,"_mochiad_wait",3);
  511.          chk.x = w * -0.5;
  512.          chk.y = h * -0.5;
  513.          bar = _xk164(chk,"_mochiad_bar",4);
  514.          if(options.no_progress_bar)
  515.          {
  516.             bar.visible = false;
  517.             delete options.no_progress_bar;
  518.          }
  519.          else
  520.          {
  521.             bar.x = 10 + options.bar_offset;
  522.             bar.y = h - 20;
  523.          }
  524.          bar_w = w - 20;
  525.          bar_color = Number(options.color);
  526.          delete options.color;
  527.          bar_background = Number(options.background);
  528.          delete options.background;
  529.          bar_outline = Number(options.outline);
  530.          delete options.outline;
  531.          backing_mc = _xk164(bar,"_outline",1);
  532.          backing = backing_mc.graphics;
  533.          backing.beginFill(bar_background);
  534.          backing.moveTo(0,0);
  535.          backing.lineTo(bar_w,0);
  536.          backing.lineTo(bar_w,10);
  537.          backing.lineTo(0,10);
  538.          backing.lineTo(0,0);
  539.          backing.endFill();
  540.          inside_mc = _xk164(bar,"_inside",2);
  541.          inside = inside_mc.graphics;
  542.          inside.beginFill(bar_color);
  543.          inside.moveTo(0,0);
  544.          inside.lineTo(bar_w,0);
  545.          inside.lineTo(bar_w,10);
  546.          inside.lineTo(0,10);
  547.          inside.lineTo(0,0);
  548.          inside.endFill();
  549.          inside_mc.scaleX = 0;
  550.          outline_mc = _xk164(bar,"_outline",3);
  551.          outline = outline_mc.graphics;
  552.          outline.lineStyle(0,bar_outline,100);
  553.          outline.moveTo(0,0);
  554.          outline.lineTo(bar_w,0);
  555.          outline.lineTo(bar_w,10);
  556.          outline.lineTo(0,10);
  557.          outline.lineTo(0,0);
  558.          chk.ad_msec = ad_msec;
  559.          chk.ad_timeout = ad_timeout;
  560.          chk.started = getTimer();
  561.          chk.showing = false;
  562.          chk.last_pcnt = 0;
  563.          chk.fadeout_time = fadeout_time;
  564.          chk.fadeFunction = function():void
  565.          {
  566.             var _loc1_:Number = NaN;
  567.             _loc1_ = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time);
  568.             if(_loc1_ > 0)
  569.             {
  570.                this.parent.alpha = _loc1_ * 0.01;
  571.             }
  572.             else
  573.             {
  574.                MochiAd.unload(_cn696);
  575.                delete this["onEnterFrame"];
  576.             }
  577.          };
  578.          complete = false;
  579.          unloaded = false;
  580.          f = function(param1:Event):void
  581.          {
  582.             param1.target.removeEventListener(param1.type,arguments.callee);
  583.             complete = true;
  584.             if(unloaded)
  585.             {
  586.                MochiAd.unload(_cn696);
  587.             }
  588.          };
  589.          if(_cn696.loaderInfo.bytesLoaded == _cn696.loaderInfo.bytesTotal)
  590.          {
  591.             complete = true;
  592.          }
  593.          else if(_cn696.root is MovieClip)
  594.          {
  595.             _qf816 = _cn696.root as MovieClip;
  596.             if(_qf816.framesLoaded >= _qf816.totalFrames)
  597.             {
  598.                complete = true;
  599.             }
  600.             else
  601.             {
  602.                _cn696.loaderInfo.addEventListener(Event.COMPLETE,f);
  603.             }
  604.          }
  605.          else
  606.          {
  607.             _cn696.loaderInfo.addEventListener(Event.COMPLETE,f);
  608.          }
  609.          mc.unloadAd = function():void
  610.          {
  611.             unloaded = true;
  612.             if(complete)
  613.             {
  614.                MochiAd.unload(_cn696);
  615.             }
  616.          };
  617.          mc.adLoaded = options.ad_loaded;
  618.          mc.adSkipped = options.ad_skipped;
  619.          mc.adjustProgress = function(param1:Number):void
  620.          {
  621.             var _loc2_:Object = null;
  622.             _loc2_ = mc._mochiad_wait;
  623.             _loc2_.server_control = true;
  624.             _loc2_.showing = true;
  625.             _loc2_.started = getTimer();
  626.             _loc2_.ad_msec = param1;
  627.          };
  628.          mc._oc588 = function(param1:Number, param2:Object):void
  629.          {
  630.             MochiAd._oc588(_cn696,param1,param2);
  631.          };
  632.          mc.rpcTestFn = function(param1:String):Object
  633.          {
  634.             trace("[MOCHIAD rpcTestFn] " + param1);
  635.             return param1;
  636.          };
  637.          mc.regContLC = function(param1:String):void
  638.          {
  639.             mc._containerLCName = param1;
  640.          };
  641.          sendHostProgress = false;
  642.          mc.sendHostLoadProgress = function(param1:String):void
  643.          {
  644.             sendHostProgress = true;
  645.          };
  646.          chk["onEnterFrame"] = function():void
  647.          {
  648.             var _loc1_:Object = null;
  649.             var _loc2_:Object = null;
  650.             var _loc3_:Number = NaN;
  651.             var _loc4_:Boolean = false;
  652.             var _loc5_:Number = NaN;
  653.             var _loc6_:Number = NaN;
  654.             var _loc7_:Number = NaN;
  655.             var _loc8_:Number = NaN;
  656.             var _loc9_:Object = null;
  657.             var _loc10_:Number = NaN;
  658.             var _loc11_:Number = NaN;
  659.             if(!this.parent || !this.parent.parent)
  660.             {
  661.                delete this["onEnterFrame"];
  662.                return;
  663.             }
  664.             _loc1_ = this.parent.parent.root;
  665.             _loc2_ = this.parent._mochiad_ctr;
  666.             _loc3_ = getTimer() - this.started;
  667.             _loc4_ = false;
  668.             _loc5_ = Number(_loc1_.loaderInfo.bytesTotal);
  669.             _loc6_ = Number(_loc1_.loaderInfo.bytesLoaded);
  670.             if(complete)
  671.             {
  672.                _loc5_ = _loc6_ = Math.max(1,_loc6_);
  673.             }
  674.             _loc7_ = 100 * _loc6_ / _loc5_;
  675.             _loc8_ = 100 * _loc3_ / chk.ad_msec;
  676.             _loc9_ = this._mochiad_bar._inside;
  677.             _loc10_ = Math.min(100,Math.min(_loc7_ || 0,_loc8_));
  678.             _loc10_ = Math.max(this.last_pcnt,_loc10_);
  679.             this.last_pcnt = _loc10_;
  680.             _loc9_.scaleX = _loc10_ * 0.01;
  681.             options.ad_progress(_loc10_);
  682.             if(sendHostProgress)
  683.             {
  684.                _cn696._mochiad.lc.send(_cn696._mochiad._containerLCName,"notify",{
  685.                   "id":"hostLoadPcnt",
  686.                   "pcnt":_loc7_
  687.                });
  688.                if(_loc7_ >= 100)
  689.                {
  690.                   sendHostProgress = false;
  691.                }
  692.             }
  693.             if(!chk.showing)
  694.             {
  695.                _loc11_ = Number(this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal);
  696.                if(_loc11_ > 0)
  697.                {
  698.                   chk.showing = true;
  699.                   chk.started = getTimer();
  700.                   MochiAd._gj572(_cn696);
  701.                }
  702.                else if(_loc3_ > chk.ad_timeout && _loc7_ == 100)
  703.                {
  704.                   options.ad_failed();
  705.                   _loc4_ = true;
  706.                }
  707.             }
  708.             if(_loc3_ > chk.ad_msec)
  709.             {
  710.                _loc4_ = true;
  711.             }
  712.             if(complete && _loc4_)
  713.             {
  714.                if(this.server_control)
  715.                {
  716.                   delete this.onEnterFrame;
  717.                }
  718.                else
  719.                {
  720.                   this.fadeout_start = getTimer();
  721.                   this.onEnterFrame = chk.fadeFunction;
  722.                }
  723.             }
  724.          };
  725.          _tf648(chk);
  726.       }
  727.       
  728.       public static function _dj268(param1:Object) : void
  729.       {
  730.          trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
  731.          MochiAd._ta740(param1);
  732.       }
  733.       
  734.       public static function _xb329(param1:Object) : void
  735.       {
  736.          var idx:Number = NaN;
  737.          var k:String = null;
  738.          var lc:LocalConnection = null;
  739.          var f:Function = null;
  740.          var mc:Object = param1;
  741.          if("lc" in mc)
  742.          {
  743.             lc = mc.lc;
  744.             f = function():void
  745.             {
  746.                try
  747.                {
  748.                   lc.client = null;
  749.                   lc.close();
  750.                }
  751.                catch(e:Error)
  752.                {
  753.                }
  754.             };
  755.             setTimeout(f,0);
  756.          }
  757.          idx = DisplayObjectContainer(mc).numChildren;
  758.          while(idx > 0)
  759.          {
  760.             idx--;
  761.             DisplayObjectContainer(mc).removeChildAt(idx);
  762.          }
  763.          for(k in mc)
  764.          {
  765.             delete mc[k];
  766.          }
  767.       }
  768.       
  769.       public static function _yf625(param1:Object) : void
  770.       {
  771.          trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
  772.          MochiAd._gs746(param1);
  773.       }
  774.       
  775.       public static function _gj572(param1:Object) : void
  776.       {
  777.          param1.origFrameRate = param1.stage.frameRate;
  778.          param1.stage.frameRate = 30;
  779.       }
  780.       
  781.       public static function setValue(param1:Object, param2:String, param3:Object) : void
  782.       {
  783.          var _loc4_:Array = null;
  784.          var _loc5_:Number = NaN;
  785.          _loc4_ = param2.split(".");
  786.          _loc5_ = 0;
  787.          while(_loc5_ < _loc4_.length - 1)
  788.          {
  789.             if(param1[_loc4_[_loc5_]] == undefined || param1[_loc4_[_loc5_]] == null)
  790.             {
  791.                return;
  792.             }
  793.             param1 = param1[_loc4_[_loc5_]];
  794.             _loc5_++;
  795.          }
  796.          param1[_loc4_[_loc5_]] = param3;
  797.       }
  798.       
  799.       public static function _pp77(param1:Object, param2:Object) : Object
  800.       {
  801.          var _loc3_:Object = null;
  802.          var _loc4_:String = null;
  803.          var _loc5_:Array = null;
  804.          var _loc6_:Number = NaN;
  805.          var _loc7_:Array = null;
  806.          _loc3_ = {};
  807.          for(_loc4_ in param2)
  808.          {
  809.             _loc3_[_loc4_] = param2[_loc4_];
  810.          }
  811.          if(param1)
  812.          {
  813.             for(_loc4_ in param1)
  814.             {
  815.                _loc3_[_loc4_] = param1[_loc4_];
  816.             }
  817.          }
  818.          if(_loc3_._cn696 == undefined)
  819.          {
  820.             throw new Error("MochiAd is missing the \'clip\' parameter.  This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.");
  821.          }
  822.          param1 = _loc3_._cn696.loaderInfo.parameters.mochiad_options;
  823.          if(param1)
  824.          {
  825.             _loc5_ = param1.split("&");
  826.             _loc6_ = 0;
  827.             while(_loc6_ < _loc5_.length)
  828.             {
  829.                _loc7_ = _loc5_[_loc6_].split("=");
  830.                _loc3_[unescape(_loc7_[0])] = unescape(_loc7_[1]);
  831.                _loc6_++;
  832.             }
  833.          }
  834.          if(_loc3_.id == "test")
  835.          {
  836.             trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
  837.          }
  838.          return _loc3_;
  839.       }
  840.       
  841.       public static function _rm99() : String
  842.       {
  843.          return MochiServices._rm99();
  844.       }
  845.       
  846.       public static function _oc588(param1:Object, param2:Number, param3:Object) : void
  847.       {
  848.          var _loc4_:Object = null;
  849.          var _loc5_:Object = null;
  850.          switch(param3.id)
  851.          {
  852.             case "setValue":
  853.                MochiAd.setValue(param1,param3.objectName,param3.value);
  854.                break;
  855.             case "getValue":
  856.                _loc4_ = MochiAd.getValue(param1,param3.objectName);
  857.                param1._mochiad.lc.send(param1._mochiad._containerLCName,"rpcResult",param2,_loc4_);
  858.                break;
  859.             case "runMethod":
  860.                _loc5_ = MochiAd._rv26(param1,param3.method,param3.args);
  861.                param1._mochiad.lc.send(param1._mochiad._containerLCName,"rpcResult",param2,_loc5_);
  862.                break;
  863.             default:
  864.                trace("[mochiads rpc] unknown rpc id: " + param3.id);
  865.          }
  866.       }
  867.       
  868.       public static function _jo540(param1:Object) : void
  869.       {
  870.          var DEFAULTS:Object = null;
  871.          var _cn696:Object = null;
  872.          var ad_timeout:Number = NaN;
  873.          var mc:MovieClip = null;
  874.          var wh:Array = null;
  875.          var w:Number = NaN;
  876.          var h:Number = NaN;
  877.          var chk:MovieClip = null;
  878.          var sendHostProgress:Boolean = false;
  879.          var options:Object = param1;
  880.          DEFAULTS = {
  881.             "ad_timeout":2000,
  882.             "regpt":"o",
  883.             "method":"showClickAwayAd",
  884.             "res":"300x250",
  885.             "no_bg":true,
  886.             "ad_started":function():void
  887.             {
  888.             },
  889.             "ad_finished":function():void
  890.             {
  891.             },
  892.             "ad_loaded":function(param1:Number, param2:Number):void
  893.             {
  894.             },
  895.             "ad_failed":function():void
  896.             {
  897.                trace("[MochiAd] Couldn\'t load an ad, make sure your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
  898.             },
  899.             "ad_skipped":function():void
  900.             {
  901.             }
  902.          };
  903.          options = MochiAd._pp77(options,DEFAULTS);
  904.          _cn696 = options._cn696;
  905.          ad_timeout = Number(options.ad_timeout);
  906.          delete options.ad_timeout;
  907.          if(!MochiAd.load(options))
  908.          {
  909.             options.ad_failed();
  910.             options.ad_finished();
  911.             return;
  912.          }
  913.          options.ad_started();
  914.          mc = _cn696._mochiad;
  915.          mc["onUnload"] = function():void
  916.          {
  917.             MochiAd._xb329(mc);
  918.             options.ad_finished();
  919.          };
  920.          wh = MochiAd._of767(options,_cn696);
  921.          w = Number(wh[0]);
  922.          h = Number(wh[1]);
  923.          mc.x = w * 0.5;
  924.          mc.y = h * 0.5;
  925.          chk = _xk164(mc,"_mochiad_wait",3);
  926.          chk.ad_timeout = ad_timeout;
  927.          chk.started = getTimer();
  928.          chk.showing = false;
  929.          mc.unloadAd = function():void
  930.          {
  931.             MochiAd.unload(_cn696);
  932.          };
  933.          mc.adLoaded = options.ad_loaded;
  934.          mc.adSkipped = options.ad_skipped;
  935.          mc._oc588 = function(param1:Number, param2:Object):void
  936.          {
  937.             MochiAd._oc588(_cn696,param1,param2);
  938.          };
  939.          sendHostProgress = false;
  940.          mc.regContLC = function(param1:String):void
  941.          {
  942.             mc._containerLCName = param1;
  943.          };
  944.          chk["onEnterFrame"] = function():void
  945.          {
  946.             var _loc1_:Object = null;
  947.             var _loc2_:Number = NaN;
  948.             var _loc3_:Boolean = false;
  949.             var _loc4_:Number = NaN;
  950.             if(!this.parent)
  951.             {
  952.                delete this.onEnterFrame;
  953.                return;
  954.             }
  955.             _loc1_ = this.parent._mochiad_ctr;
  956.             _loc2_ = getTimer() - this.started;
  957.             _loc3_ = false;
  958.             if(!chk.showing)
  959.             {
  960.                _loc4_ = Number(this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal);
  961.                if(_loc4_ > 0)
  962.                {
  963.                   chk.showing = true;
  964.                   _loc3_ = true;
  965.                   chk.started = getTimer();
  966.                }
  967.                else if(_loc2_ > chk.ad_timeout)
  968.                {
  969.                   options.ad_failed();
  970.                   _loc3_ = true;
  971.                }
  972.             }
  973.             if(this.root == null)
  974.             {
  975.                _loc3_ = true;
  976.             }
  977.             if(_loc3_)
  978.             {
  979.                delete this.onEnterFrame;
  980.             }
  981.          };
  982.          _tf648(chk);
  983.       }
  984.       
  985.       public static function _xk164(param1:Object, param2:String, param3:Number) : MovieClip
  986.       {
  987.          var _loc4_:MovieClip = null;
  988.          _loc4_ = new MovieClip();
  989.          if(false && Boolean(param3))
  990.          {
  991.             param1.addChildAt(_loc4_,param3);
  992.          }
  993.          else
  994.          {
  995.             param1.addChild(_loc4_);
  996.          }
  997.          param1[param2] = _loc4_;
  998.          _loc4_["_name"] = param2;
  999.          return _loc4_;
  1000.       }
  1001.       
  1002.       public static function unload(param1:Object) : Boolean
  1003.       {
  1004.          if(Boolean(param1._cn696) && Boolean(param1._cn696._mochiad))
  1005.          {
  1006.             param1 = param1._cn696;
  1007.          }
  1008.          if(param1.origFrameRate != undefined)
  1009.          {
  1010.             param1.stage.frameRate = param1.origFrameRate;
  1011.          }
  1012.          if(!param1._mochiad)
  1013.          {
  1014.             return false;
  1015.          }
  1016.          if(param1._mochiad._containerLCName != undefined)
  1017.          {
  1018.             param1._mochiad.lc.send(param1._mochiad._containerLCName,"notify",{"id":"unload"});
  1019.          }
  1020.          if(param1._mochiad.onUnload)
  1021.          {
  1022.             param1._mochiad.onUnload();
  1023.          }
  1024.          delete param1._mochiad_loaded;
  1025.          delete param1._mochiad;
  1026.          return true;
  1027.       }
  1028.    }
  1029. }
  1030.  
  1031.